﻿using NearAop.Attributes;

namespace NearAop.Interfaces
{
    /// <summary>
    /// 函数代理(开始时)
    /// </summary>
    public interface IAopProxyMethodOnEntry : IAopProxy, IAopMethodHandlerName
    {
        /// <summary>
        /// 是否更新参数值(关闭可以提升性能)
        /// </summary>
        bool IsUpdateValue { get; }       
    }

    /// <summary>
    ///  函数代理(结束时)
    /// </summary>
    public interface IAopProxyMethodOnExit : IAopProxy, IAopMethodHandlerName
    {
        /// <summary>
        /// 退出方法时是否收集参数值(关闭可以提升性能)
        /// </summary>
        bool IsSetValueOnExit { get; }
    }


}

namespace NearAop.Attributes
{
    public interface IAopMethodHandlerName
    {
        /// <summary>
        /// 代理类中处理函数名称(默认空)
        /// </summary>
        string HandlerName { get; }
    }
}
